home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-30 | 40.2 KB | 1,330 lines |
- diff -c -r +new-files ../cr.orig/CRISP.Inst ./CRISP.Inst
- *** ../cr.orig/CRISP.Inst Wed Mar 27 23:09:50 1991
- --- ./CRISP.Inst Wed Mar 27 22:36:05 1991
- ***************
- *** 5,10 ****
- --- 5,21 ----
- ##########################################################################
- bin=/usr/local/bin # Directory for binaries.
- inst=/usr/local/crisp # Directory for macros and help texts
- + echo "Binaries installation directory: $bin"
- + echo "Libraries installation directory: $inst"
- + echo ""
- + echo "If this is wrong, abort this installation NOW and edit the"
- + echo "CRISP.Inst file."
- + echo "Pausing 10 seconds for you to press DEL to abort"
- + sleep 10
- + echo "Continuing installation..."
- + sed -e "/^# define INST_DIR/s;.*;# define INST_DIR \"$inst\";" \
- + < src/crisp/crisp.h > /tmp/cinst.$$ && \
- + mv /tmp/cinst.$$ src/crisp/crisp.h
- ##########################################################################
- # Some drudgery before we get started.
- ##########################################################################
- ***************
- *** 11,31 ****
- version=1.9
- ##########################################################################
- # Now unpack any .tar files
- ##########################################################################
- ! for i in *.Z
- ! do
- ! if [ -f $i ]; then
- ! echo Uncompressing $i
- ! uncompress $i
- ! fi
- ! done
- ! for i in *-sh*
- ! do
- ! if [ -f $i ]; then
- ! sh $i
- ! rm $i
- ! fi
- ! done
- ##########################################################################
- # Try and deduce what system we are on.
- # If you are going to edit this because you are trying to make
- --- 22,43 ----
- version=1.9
- ##########################################################################
- # Now unpack any .tar files
- + # (This never did work right anyway... - kew)
- ##########################################################################
- ! #for i in *.Z
- ! #do
- ! # if [ -f $i ]; then
- ! # echo Uncompressing $i
- ! # uncompress $i
- ! # fi
- ! #done
- ! #for i in *-sh*
- ! #do
- ! # if [ -f $i ]; then
- ! # sh $i
- ! # rm $i
- ! # fi
- ! #done
- ##########################################################################
- # Try and deduce what system we are on.
- # If you are going to edit this because you are trying to make
- ***************
- *** 96,99 ****
- --- 108,113 ----
- make cmac
- echo "Installing Help files..."
- make hmac
- + echo "Installing macro sources..."
- + make smac
- echo Installation successfully completed.
- diff -c -r +new-files ../cr.orig/ChangeLog ./ChangeLog
- *** ../cr.orig/ChangeLog Wed Mar 27 23:09:50 1991
- --- ./ChangeLog Thu Mar 28 08:47:40 1991
- ***************
- *** 1,3 ****
- --- 1,57 ----
- + Changes since version 1.9
- + =========================
- +
- + 1. Fixed bug in bookmark.c which cuased a lockup when trying to change
- + to a bookmark in another window which was currently displayed.
- + 2. Fixed *another* bug in bookmark.c which caused the argv vector to
- + get munged.
- + 3. Made code in spawn.c and pty.c more portable when using select().
- + 4. Revised crisp.m to look for and possibly create a $HOME/.crisprc.{m,cm}
- + file which has all of the autoload's in it. This makes crisp much
- + more configurable. Thanks to Berger Wathne for the idea.
- + 5. Fixed key assignmet in config.c that had F5/F6 goofed up.
- + 6. Fixed code ttyio.c that used scrolling regions. The regions were not
- + being reset properly cuasing many, many problems.
- + 7. You can now set the background color.
- + 8. Enhanced the compress intrinsic in math.c to allow for two spaces
- + after punctuation marks. You pass the punctuation marks that you want
- + to have two spaces after. If none are passed, compress works as before.
- + 9. Made a m-aix.h file with Warren Jones' help.
- + 10. First pty looked for is ptyp0 instead of ptyq0. This matches my system,
- + and probably no others in the universe. Let's figure out a good way
- + to do this!
- + 11. check_if_died() changed to drain the pipe prior to cleanup.
- + 12. Added a global variable wait_status to correct a problem that would cause
- + processes to not return the correct status. I.e., (shell foo 1) would
- + return a random value.
- + 13. Fixed a definition problem in splay/sptree.h that would cause GNU-C to
- + complain.
- + 14. calc.m rewritten so it works.
- + 15. mail.m rewritten so it works.
- + 16. Added sccs.m that works with sccs much the same as Brief works with PVCS.
- + 17. Added a strange rcs.m that works with rcs, but trys to emulate the makedist
- + package from lwall. Needs work.
- + 18. Added cbox.m to draw comment boxes for you.
- + 19. Added zoom.m to zoom any window to full screen. Cbox and zoom are both
- + from Stig Jacobsen.
- + 20. Column marking/deleting/copying now work.
- + 21. compile.m changed to support GNU-C.
- + 22. _pipe macro now pipes the marked area into the command, and replaces the
- + marked area on return.
- + 23. Support for .4gl and .C/.cc files.
- + 24. Lots more X support.
- + 25. autoindent now works correctly, not inserting only tabs, but whatever it
- + needs to match the previous tab.
- + 26. Tab and Shift-Tab now move a block right/left by one tab.
- + 27. Modelines.m added to have commands in the text file that are executed just
- + like vi's modeline feature.
- + 28. Wildcard pattern matching bug fixed that would return foo.c~ when only
- + the *.c files were asked for. This bug lay hidden because of a similar
- + designe decision in select.m.
- + 29. spell now defaults to American spellings.
- + 30. AIX support.
- + 31. Better Sun support.
- +
- Known Bugs in V1.9
- ==================
-
- diff -c -r +new-files ../cr.orig/Makefile ./Makefile
- *** ../cr.orig/Makefile Wed Mar 27 23:09:51 1991
- --- ./Makefile Wed Mar 27 22:35:56 1991
- ***************
- *** 14,25 ****
- #* Version 1.25
- #*
- #**************************************************************/
- OBJDIR = obj
- CFLAGS = $(G)
- TARGET = cr
- L = lib
- LIB1 = $(L)/libsptree.a $(L)/llist.a $(L)/foxlib.a
- ! LIBS = $(LIB1) $(MALLOC) $(SHLIB)
- SRCDIR = sleepy:/usr/fox/crisp
- INSTALL_DIR = /usr/local/crisp
- LDFLAGS =
- --- 14,28 ----
- #* Version 1.25
- #*
- #**************************************************************/
- + #
- + # You set G, OTHERLIBS and other variables in your machine's s-machine file.
- + #
- OBJDIR = obj
- CFLAGS = $(G)
- TARGET = cr
- L = lib
- LIB1 = $(L)/libsptree.a $(L)/llist.a $(L)/foxlib.a
- ! LIBS = $(LIB1) $(MALLOC) $(SHLIB) $(OTHERLIBS)
- SRCDIR = sleepy:/usr/fox/crisp
- INSTALL_DIR = /usr/local/crisp
- LDFLAGS =
- ***************
- *** 62,78 ****
- __Foxlib: $(L)/foxlib.a
- touch __Foxlib
- $(L)/foxlib.a:
- ! cd foxlib ; $(MAKE)
-
- __Llist: $(L)/llist.a
- touch __Llist
- $(L)/llist.a:
- ! cd llist ; $(MAKE)
-
- __Splay: $(L)/libsptree.a
- touch __Splay
- $(L)/libsptree.a:
- ! cd splay ; $(MAKE)
-
- clean:
- -rm -f crisp.log
- --- 65,81 ----
- __Foxlib: $(L)/foxlib.a
- touch __Foxlib
- $(L)/foxlib.a:
- ! cd foxlib ; $(MAKE) "CFLAGS=$(CFLAGS)"
-
- __Llist: $(L)/llist.a
- touch __Llist
- $(L)/llist.a:
- ! cd llist ; $(MAKE) "CFLAGS=$(CFLAGS)"
-
- __Splay: $(L)/libsptree.a
- touch __Splay
- $(L)/libsptree.a:
- ! cd splay ; $(MAKE) "CFLAGS=$(CFLAGS)"
-
- clean:
- -rm -f crisp.log
- ***************
- *** 79,88 ****
- -rm -f obj/* lib/* a.out core
- -rm -f *.o
- -rm -f */*.o
-
- $(TARGET): $(OBJ) $(MARKER)
- $(CC) $(LDFLAGS) $(CFLAGS) $(SEG) -o $(TARGET) $(OBJ) $(LIBS)
- - sync
- @echo "Finished making 'cr' executable."
-
- crisp.dist:
- --- 82,96 ----
- -rm -f obj/* lib/* a.out core
- -rm -f *.o
- -rm -f */*.o
- +
- + realclean: clean
- + -rm -f $(MARKER)
- + -rm -f cr cm
- + -rm -f tags
- + -rm -f s-machine m-machine.h
-
- $(TARGET): $(OBJ) $(MARKER)
- $(CC) $(LDFLAGS) $(CFLAGS) $(SEG) -o $(TARGET) $(OBJ) $(LIBS)
- @echo "Finished making 'cr' executable."
-
- crisp.dist:
- ***************
- *** 261,266 ****
- --- 269,278 ----
- -rm -rf /usr/local/crisp/help
- -mkdir /usr/local/crisp/help
- cd help/crisp ; tar cf - . | (cd /usr/local/crisp/help ; tar xvf - )
- +
- + smac:
- + -mkdir /usr/local/crisp/src
- + cd src; tar cf - . | (cd /usr/local/crisp/src; tar xvf - )
-
- cm: cm.c debug.c env.c keywd.c language.c ref_string.c system.c word.c
- $(CC) $(CFLAGS) -DNOFUNCTIONS \
- diff -c -r +new-files ../cr.orig/README ./README
- *** ../cr.orig/README
- --- ./README Wed Mar 27 17:03:33 1991
- ***************
- *** 0 ****
- --- 1,84 ----
- + This file is included in the Crisp v1.9 patch set as an explanation
- + and a greeting.
- +
- + My name is Keith Walker. I've been using Crisp/GRIEF since version
- + 1.5. I like the editor and want to see it improve. I've been writing
- + and collecting fixes to the C source and macros as well as new macro
- + files for quite a while now. I want to share this with you.
- +
- + Apply this patch to a pristine version of Crisp 1.9 and many, many
- + bugs will go away. Some subtle, some no so subtle. Macro files will
- + be added to your system as well as some changes to the way that crisp
- + operates.
- +
- + Some of the changes that will make a chagne in the way you do business
- + with crisp:
- +
- + 1. The crisp.m macro has changed considerably.
- + All of the code in crisp.m that did the autoload stuff has
- + been moved to a file in your home directory called
- + "~/.crisprc.{m,cm}". This makes it much easier to customize
- + your particular version of crisp. This is where you should
- + do things like assign_to_key changes. The first time that
- + the new version of crisp fires up, you'll get a couple of
- + messages telling you what it's doing. After that you can
- + find the crisprc files in your home directory. They are
- + copies of the "crisprc.m" file in the INST/src/crisp
- + directory. Modify to suit. If crisp discovers that the
- + ~/.crisprc.m file is newer than ~/crisprc.cm, then it will
- + do the recompile automatically.
- +
- + 2. The goto_bookmark intrinsic works now.
- + Not much to say about this. Goto_bookmark will now look for
- + bookmarks in other windows, including windows that are
- + currently displayed.
- +
- + 3. Mail works
- + This was somewhat brain damaged in the original version. I
- + understand that some Unixes keep the mail files writable
- + only to the "mail" group. Mail still won't work for you,
- + unless you put some setgid() code in the system, which you
- + probably don't want to do.
- +
- + 4. Installation is a little smarter, but...
- + I wanted to keep this patch set at something less than 1Meg.
- + This meant refraining from gratuitous changes like C source
- + formatting, extra comments, and unfortunately, too many
- + changes to the installation procedures. One major change
- + that was actually put back in from previous versions of
- + crisp was to copy the macro source directory to the install
- + directory (usually /usr/local/crisp). This keeps the
- + sources in a convenient place for the sysadmin.
- +
- +
- + Keith Walker
- + North 8710 Kelly Court
- + Spokane, Washington 99208
- + +1 509 466 9284
- + kew@cims.com
- + ...uunet!{isc-br!tau-ceti,proto}!cims2!kew
- +
- +
- + p.s.
- +
- + As I write this, I have heard that Paul Fox is once again on the scene
- + with a new version of crisp. But then we heard that the version is
- + 1.1, then 2.1, then 1.1, then the e-mail address was bad, etc. In
- + other words, we haven't got any verification of Paul's existance really.
- +
- + I don't know what this will do to the current version of crisp. The
- + new version (whatever the number) is "shareware" and costs about
- + $150.00 US, and you must pay before delivery. This is a little
- + different than the "shareware" concept we have stateside. To me it
- + basically means that Paul has gone commercial.
- +
- + Just so you know my stance, I intend to keep improving the 1.9 version
- + whatever Paul has going, since I for one cannot justify $150 for an
- + editor when I already have one that works great. I will continue to
- + share my work with others that want it.
- +
- + This whole bit is subject to change, since I haven't heard directly
- + from Paul Fox, so take it all with a grain of salt.
- +
- + --kew
- +
- diff -c -r +new-files ../cr.orig/X.README ./X.README
- *** ../cr.orig/X.README
- --- ./X.README Wed Mar 27 16:28:56 1991
- ***************
- *** 0 ****
- --- 1,80 ----
- + [This letter came along with some changes from rohit@dmdev.uucp
- + (aka Rohit Mehrotra). Since your maintainer knows nothing of X,
- + you'll have to figure out what goes on yourself. Sorry. Maybe
- + someday, my machine will grow up and I'll get X.
- +
- + Also, your maintainer has a Missed-Em Five machine so the file
- + is *not* named "xcrisp.xdefaults", it's named "xcrisp.xdefaul".
- + (yeah, go ahead, laugh! Ha-Ha.)
- +
- + -- kew ]
- +
- + Hi,
- +
- + Crisp can map any escape sequence emitted by a key stroke to any
- + of its macros. This mapping is defined in a terminal driver. There
- + are two terminal drivers for crisp on X.
- +
- + Both these drivers are essentially similar to an extent that both of
- + them:
- + 1) try to tell crisp as to what escape sequences are emitted by
- + which keystrokes,
- + 2) try to map these keystrokes to different crisp macros.
- +
- + If you find that any of them is not correct then go ahead and
- + modify them accordingly.
- +
- + If for some reason your keyboard is not emitting the escape sequences
- + i.e. Alt-A or Meta-A emit the character "a" then crisp can really not
- + do much about it. If you know of a way to get your keyboard to emit
- + different escape sequences for different Shifted/Alted keystrokes
- + then just change the escape sequences being mapped and you should
- + be all set to go. I have heard that you can map any keystroke to any
- + escape sequences in X. Well there is your chance to prove it (:-.
- +
- + If you can not do it and insist on using crisp under X then try to
- + use the terminal driver sun4.m which maps just about most of the
- + crisp macros to the CTRL-keys. However uptil now I have not been
- + able to make the KeyPad + / - emit any escape sequences in
- + Openwindows on Sun.
- +
- + Files for the two drivers are:
- +
- + 1) src/crisp/tty/xterm.m
- + and src/crisp/kbd/xterm.m
- +
- + 2) src/crisp/tty/xcrisp.m
- + and src/crisp/tty/xcrisp.m
- + and xcrisp.xdefaults
- +
- + The driver xterm.m came along with version 1.9 and has been modified
- + by me a little. This driver assumes that your keyboard is emitting
- + the escape sequences that are defined in it. There is a capability
- + to choose between sun mappings or VT100 mappings. I HAVE NOT REALLY
- + TESTED THEM FULLY AS I PERSONALLY USE THE xcrisp macro/approach.
- +
- + UNCOMMENT THE LINES THAT YOU WOULD CHOOSE. This driver requires some
- + some modifications in a sense that you might have to change the escape
- + sequences associated with the various keys to the one that are emitted
- + by your keyboard.
- +
- + In driver xcrisp different set of key mappings are defined, we
- + are trying to standardize things. In order to make the keyboard emit
- + the escape sequences mapped in xcrisp.m start crisp/xterm window as
- + follows:
- + xterm -name xcrisp -e "cr"
- + or
- + xterm -name xcrisp
- +
- + Add the lines in the file called tty/xcr.xdefault to your .Xdefaults,
- + or wherever you xterm will find them. These lines have to correspond
- + to the kbd and tty files.
- +
- + I WANT TO STANDARDIZE THESE THINGS SO THAT THEY ARE NOT TOO SUN-SPECIFIC.
- +
- + The driver xcrisp works fine on my system: SunOS4.1.1 / SunSparc
- +
- + LET ME KNOW WHAT YOU DO. IF YOU ENHANCE THIS IN ANY WAY, HAVE PROBLEMS, ETC.
- +
- + [ Well, that's it. If you do help out, please send your changes
- + to me at kew@cims.com --kew]
- diff -c -r +new-files ../cr.orig/bookmark.c ./bookmark.c
- *** ../cr.orig/bookmark.c Wed Mar 27 23:10:07 1991
- --- ./bookmark.c Wed Mar 27 16:16:40 1991
- ***************
- *** 55,65 ****
- --- 55,75 ----
- struct bookmark *bk;
- int move = TRUE;
- long book_no;
- + int i; /* kew */
- + LISTV tmp_args[5]; /* kew */
-
- + /* save all used args */ /* kew */
- + for (i = 1; i <= 4; i++) /* kew */
- + tmp_args[i] = argv[i]; /* kew */
- +
- accumulator = 0;
- if (get_iarg1("Go to bookmark [1-10]: ", &book_no))
- return 0;
-
- + /* restore the args */ /* kew */
- + for (i = 1; i <= 4; i++) /* kew */
- + argv[i] = tmp_args[i]; /* kew */
- +
- if (book_no == 0)
- book_no = 10;
- if (book_no < 1 || book_no > MAX_BOOKMARKS) {
- ***************
- *** 85,91 ****
-
- if (move) {
- WINDOW *wp;
- ! for (wp = wheadp; wp; wp->w_wndp)
- if (wp->w_bufp->b_bufnum == bk->b_buffer)
- break;
- if (wp == NULL) {
- --- 95,101 ----
-
- if (move) {
- WINDOW *wp;
- ! for (wp = wheadp; wp; wp = wp->w_wndp) /* kew */
- if (wp->w_bufp->b_bufnum == bk->b_buffer)
- break;
- if (wp == NULL) {
- ***************
- *** 103,108 ****
- --- 113,119 ----
- }
- argv[1].l_int = bk->b_line;
- argv[2].l_int = bk->b_col;
- + set_hooked(); /* kew */
- move_abs();
- }
- accumulator = 1;
- diff -c -r +new-files ../cr.orig/config.c ./config.c
- *** ../cr.orig/config.c Wed Mar 27 23:10:12 1991
- --- ./config.c Wed Mar 27 16:16:55 1991
- ***************
- *** 65,72 ****
- F2, "move_edge",
- F3, "create_edge",
- F4, "delete_edge",
- ! F5, "search_fwd",
- ! F6, "translate",
- F7, "remember",
- F8, "playback",
- F9, "load_macro",
- --- 65,72 ----
- F2, "move_edge",
- F3, "create_edge",
- F4, "delete_edge",
- ! F5, "search-fwd", /* kew */
- ! F6, "translate-fwd", /* kew */
- F7, "remember",
- F8, "playback",
- F9, "load_macro",
- diff -c -r +new-files ../cr.orig/display.c ./display.c
- *** ../cr.orig/display.c Wed Mar 27 23:10:14 1991
- --- ./display.c Wed Mar 27 21:53:57 1991
- ***************
- *** 151,160 ****
- void
- vttidy()
- {
- ttmove(nrow-1, (u_int16) 0);
- ttputc(FG(col_table.c_normal));
- tteeol();
- - tttidy();
- ttflush();
- ttclose();
- }
- --- 151,160 ----
- void
- vttidy()
- {
- + tttidy();
- ttmove(nrow-1, (u_int16) 0);
- ttputc(FG(col_table.c_normal));
- tteeol();
- ttflush();
- ttclose();
- }
- ***************
- *** 816,822 ****
- void
- vtputl(lp)
- register LINE *lp;
- ! { int attr = FG(col_table.c_normal);
- u_int16 ch;
- register u_int16 col = ncol;
- register u_char *cp = lp->l_text;
- --- 816,822 ----
- void
- vtputl(lp)
- register LINE *lp;
- ! { int attr = FG(col_table.c_normal) | BG(col_table.c_background); /* kew */
- u_int16 ch;
- register u_int16 col = ncol;
- register u_char *cp = lp->l_text;
- diff -c -r +new-files ../cr.orig/foxlib/chk_alloc.c ./foxlib/chk_alloc.c
- *** ../cr.orig/foxlib/chk_alloc.c Wed Mar 27 23:08:33 1991
- --- ./foxlib/chk_alloc.c Wed Mar 27 17:04:37 1991
- ***************
- *** 222,228 ****
- # define MMU_PAGESIZE (3 * 8192)/* Must be at least as big as */
- /* real MMU page size. */
- # define NEXT(vp) ((VM *) ((char *) vp + size))
- ! # define NULL 0
-
- typedef struct VM {
- struct VM *next;
- --- 222,230 ----
- # define MMU_PAGESIZE (3 * 8192)/* Must be at least as big as */
- /* real MMU page size. */
- # define NEXT(vp) ((VM *) ((char *) vp + size))
- ! # if !defined(NULL)
- ! # define NULL 0
- ! # endif
-
- typedef struct VM {
- struct VM *next;
- diff -c -r +new-files ../cr.orig/gdir.h ./gdir.h
- *** ../cr.orig/gdir.h Wed Mar 27 23:09:56 1991
- --- ./gdir.h Wed Mar 27 19:21:51 1991
- ***************
- *** 9,15 ****
- # undef DIRSIZ
- # endif
- # define DIRSIZ MAXNAMLEN
- ! # define dirent direct
- # else
- # include <dirent.h>
- # endif
- --- 9,17 ----
- # undef DIRSIZ
- # endif
- # define DIRSIZ MAXNAMLEN
- ! # if !defined(_AIX) /* kew */
- ! # define dirent direct
- ! # endif
- # else
- # include <dirent.h>
- # endif
- diff -c -r +new-files ../cr.orig/keywd.c ./keywd.c
- *** ../cr.orig/keywd.c Wed Mar 27 23:10:19 1991
- --- ./keywd.c Wed Mar 27 16:17:23 1991
- ***************
- *** 146,152 ****
- MACRO3("change_window", change_window, "*i"),/* Window */
- MACRO3("color", color, "*i*i*i*i*i*i"),/* Screen */
- MACRO3("command_list", command_list, ""),/* List */
- ! MACRO3("compress", compress, "s"),/* String */
- MACRO3("connect", do_connect, "*i*s"),/* Proc */
- MACRO3("continue", do_continue, ""),/* Macro */
- MACRO3("copy", copy, "*i"),/* Scrap */
- --- 146,152 ----
- MACRO3("change_window", change_window, "*i"),/* Window */
- MACRO3("color", color, "*i*i*i*i*i*i"),/* Screen */
- MACRO3("command_list", command_list, ""),/* List */
- ! MACRO3("compress", compress, "s*s"),/* String */ /* kew */
- MACRO3("connect", do_connect, "*i*s"),/* Proc */
- MACRO3("continue", do_continue, ""),/* Macro */
- MACRO3("copy", copy, "*i"),/* Scrap */
- diff -c -r +new-files ../cr.orig/m-aix.h ./m-aix.h
- *** ../cr.orig/m-aix.h
- --- ./m-aix.h Thu Mar 28 08:49:23 1991
- ***************
- *** 0 ****
- --- 1,88 ----
- + /************************************************************************
- + * *
- + * CRISP - Custom Reduced Instruction Set Programmers Editor *
- + * *
- + * (C) Paul Fox, 1989 *
- + * 43, Jerome Close Tel: +44 6284 4222 *
- + * Marlow *
- + * Bucks. *
- + * England SL7 1TX *
- + * *
- + * *
- + * Please See COPYRIGHT notice. *
- + * *
- + * This file is supposed to be for AIX, but your maintainer *
- + * knows nothing of AIX, so you need to edit this. *
- + * *
- + ************************************************************************/
- +
- + /*------------------------------------------------------------*/
- + /* "I changed this to help with some changes by Warren Jones" */
- + /* "Please let me know if they do the trick. Mail to:" */
- + /* "kew@cims.com" */
- + /*------------------------------------------------------------*/
- +
- + /************************************************************************
- + * One of the following should be set to indicate machine type. *
- + * Some of the definitions may apply to more than one machine *
- + * type, eg SUN may be more indicative of BSD, but I dont have a *
- + * generic BSD to try this out on. *
- + ************************************************************************/
- + # define SUN /* this is about the closest, I think -- kew */
- + /*# define SYSV*/
- + /*#define VMS*/
- + /************************************************************************
- + * Some combination of the following may need to be set for *
- + * operating system dependent features which dont fit under the *
- + * general category of operating system features. *
- + ************************************************************************/
- + # define BSD
- + /*# define XENIX*/
- +
- + /************************************************************************
- + * DIRSIZ_DEFINED should be define'd if the POSIX directory *
- + * access include files are wrong. (Are they wrong or right ?) *
- + ************************************************************************/
- + # define DIRSIZ_DEFINED
- + /*#undef DIRSIZ_DEFINED*/
- +
- + /************************************************************************
- + * The following # define is used to control the use of the enum *
- + * OPCODE typedef in the list.h. It doesn't matter if you set *
- + * this to 'int' as below, but if it is undefined then it is *
- + * easier to debug the CRISP lisp-code. Older Unix C compilers *
- + * do not treat enum's and int's as the same type and will *
- + * complain during compilation. *
- + ************************************************************************/
- + # define OPCODE int
- + /*#undef OPCODE */
- +
- +
- + /************************************************************************
- + * If you have support for pty's in your kernel, then define *
- + * HAVE_PTY. If not #undef it, and normal unnamed pipes will be *
- + * used instead. *
- + ************************************************************************/
- + # undef HAVE_PTY
- + # define HAVE_PTY
- +
- + /************************************************************************
- + * SELECT should be defined if we can do a select() on the *
- + * keyboard and on the process pty's/pipes. This will tend to be *
- + * true on BSD systems, and Sys V.4. Alas, poll() isn't *
- + * generally applicable on V.3 because the standard pipe and tty *
- + * drivers are streams modules. *
- + ************************************************************************/
- + # undef SELECT
- + # define SELECT
- +
- + /************************************************************************
- + * CRISP defines a typedef called u_char. Some Unix systems also *
- + * define this type in one of the system header files *
- + * (/usr/include/sys/types.h) which causes a compilation error. *
- + * If you have this typedef in your system header file, then *
- + * #define U_CHAR. Otherwise undefine it. *
- + ************************************************************************/
- + /*#undef U_CHAR*/
- + # define U_CHAR
- +
- diff -c -r +new-files ../cr.orig/m-sun3os3.h ./m-sun3os3.h
- *** ../cr.orig/m-sun3os3.h Wed Mar 27 23:10:54 1991
- --- ./m-sun3os3.h Thu Mar 28 08:49:23 1991
- ***************
- *** 84,89 ****
- ************************************************************************/
- /*#undef U_CHAR*/
- # define U_CHAR
- -
- -
- -
- --- 84,86 ----
- diff -c -r +new-files ../cr.orig/m-sun3os4.h ./m-sun3os4.h
- *** ../cr.orig/m-sun3os4.h Wed Mar 27 23:10:54 1991
- --- ./m-sun3os4.h Thu Mar 28 08:49:23 1991
- ***************
- *** 84,88 ****
- /*#undef U_CHAR*/
- # define U_CHAR
-
- -
- -
- --- 84,86 ----
- diff -c -r +new-files ../cr.orig/m-sysv.h ./m-sysv.h
- *** ../cr.orig/m-sysv.h Wed Mar 27 23:10:55 1991
- --- ./m-sysv.h Thu Mar 28 08:49:23 1991
- ***************
- *** 83,87 ****
- #undef U_CHAR
- /*# define U_CHAR*/
-
- -
- -
- --- 83,85 ----
- diff -c -r +new-files ../cr.orig/m-sysv3.2.h ./m-sysv3.2.h
- *** ../cr.orig/m-sysv3.2.h Wed Mar 27 23:10:55 1991
- --- ./m-sysv3.2.h Thu Mar 28 08:49:23 1991
- ***************
- *** 89,92 ****
- # define EGA43
- /* #undef EGA43*/
-
- -
- --- 89,91 ----
- diff -c -r +new-files ../cr.orig/m-vms.h ./m-vms.h
- *** ../cr.orig/m-vms.h Wed Mar 27 23:10:57 1991
- --- ./m-vms.h Thu Mar 28 08:49:23 1991
- ***************
- *** 86,90 ****
- ************************************************************************/
- /*# define U_CHAR*/
-
- -
- -
- --- 86,88 ----
- diff -c -r +new-files ../cr.orig/m-xenix.h ./m-xenix.h
- *** ../cr.orig/m-xenix.h Wed Mar 27 23:10:57 1991
- --- ./m-xenix.h Thu Mar 28 08:49:24 1991
- ***************
- *** 33,39 ****
- * general category of operating system features. *
- ************************************************************************/
- /*# define BSD*/
- ! /*# define XENIX*/
-
- /************************************************************************
- * DIRSIZ_DEFINED should be define'd if the POSIX directory *
- --- 33,39 ----
- * general category of operating system features. *
- ************************************************************************/
- /*# define BSD*/
- ! # define XENIX
-
- /************************************************************************
- * DIRSIZ_DEFINED should be define'd if the POSIX directory *
- ***************
- *** 60,66 ****
- * used instead. *
- ************************************************************************/
- # undef HAVE_PTY
- ! /*# define HAVE_PTY*/
-
- /************************************************************************
- * SELECT should be defined if we can do a select() on the *
- --- 60,66 ----
- * used instead. *
- ************************************************************************/
- # undef HAVE_PTY
- ! # define HAVE_PTY
-
- /************************************************************************
- * SELECT should be defined if we can do a select() on the *
- ***************
- *** 70,76 ****
- * drivers are streams modules. *
- ************************************************************************/
- # undef SELECT
- ! /*# define SELECT*/
-
- /************************************************************************
- * CRISP defines a typedef called u_char. Some Unix systems also *
- --- 70,76 ----
- * drivers are streams modules. *
- ************************************************************************/
- # undef SELECT
- ! # define SELECT
-
- /************************************************************************
- * CRISP defines a typedef called u_char. Some Unix systems also *
- ***************
- *** 81,86 ****
- ************************************************************************/
- #undef U_CHAR
- /*# define U_CHAR*/
- -
- -
- -
- --- 81,83 ----
- diff -c -r +new-files ../cr.orig/math.c ./math.c
- *** ../cr.orig/math.c Wed Mar 27 23:10:31 1991
- --- ./math.c Wed Mar 27 16:17:58 1991
- ***************
- *** 320,339 ****
- return 0;
- }
- compress()
- ! { register char *cp;
- ! register char *cp1;
- ! strl_acc_assign(get_str(1));
- ! cp = saccumulator;
- while (*cp) {
- ! for (cp1 = cp; isspace(*cp1) || *cp1 == '\n'; )
- ! cp1++;
- ! if (*cp1 != *cp) {
- ! strcpy(cp+1, cp1);
- ! *cp = ' ';
- }
- - cp++;
- }
- return 0;
- }
- trim()
- { register char *cp;
- --- 320,366 ----
- return 0;
- }
- compress()
- ! {
- ! /* start kew */
- ! /*
- ! * New compress can be called like (compress line "!.?:") and will
- ! * add two spaces after each of the characters in the follow_set.
- ! * If the follow_set is NULL or not passed, then compress will act
- ! * just like the old one; this preserves backward compatibility.
- ! */
- ! char *cp;
- ! char *sacc;
- ! char *s1;
- ! char *follow_set = (argv[2].l_flags == F_STR) ? argv[2].l_str : NULL;
- ! int got_follow;
- !
- ! cp = get_str(1);
- ! sacc = (char *) chk_alloc(strlen(cp) * 2 + 1); /* plenty of room for expansion */
- ! s1 = sacc;
- while (*cp) {
- ! if (!isspace(*cp) && *cp != '\n') {
- ! *s1++ = *cp; /* copy over the character */
- ! if (follow_set && strchr(follow_set, *cp) && isspace(*(cp + 1)))
- ! got_follow = 1;
- ! else
- ! got_follow = 0;
- ! cp++;
- ! } else {
- ! /* character must be whitespace */
- ! while (isspace(*cp) || *cp == '\n')
- ! cp++;
- ! *s1++ = ' ';
- ! if (got_follow) {
- ! *s1++ = ' ';
- ! got_follow = 0;
- }
- }
- + }
- + *s1 = '\0';
- + strl_acc_assign(sacc);
- + chk_free(sacc);
- return 0;
- + /* end kew */
- }
- trim()
- { register char *cp;
- diff -c -r +new-files ../cr.orig/pty.c ./pty.c
- *** ../cr.orig/pty.c Wed Mar 27 23:10:33 1991
- --- ./pty.c Wed Mar 27 16:24:48 1991
- ***************
- *** 19,35 ****
- # include <termio.h>
- # endif
- # include "clk.h"
- SCCSID("@(#) pty.c 1.15, (C) P. Fox");
- - extern BYTE *blanks;
-
- # define BOLD 0x01
- # define REVERSE 0x02
-
- # define POLL_TIME 1 /* Seconds between polls. */
- - # define BIT(x) (1 << (x))
-
- static int entry = 0;
- ! extern long sel_bits;
- static char *flush_pty_buf();
- static void p_update();
- void p_clear_screen();
- --- 19,46 ----
- # include <termio.h>
- # endif
- # include "clk.h"
- + /* start kew */
- + #ifdef SELECT
- + # if !(defined(BSD) || defined(SUN)) /* BSD/Sun puts timeval struct in times.h -- 27Mar91 kew */
- + # include <sys/select.h>
- + # endif
- + #endif
- + #include <sys/types.h>
- + #include <sys/times.h>
- + #include <time.h>
- + /* end kew */
- +
- SCCSID("@(#) pty.c 1.15, (C) P. Fox");
-
- # define BOLD 0x01
- # define REVERSE 0x02
-
- # define POLL_TIME 1 /* Seconds between polls. */
-
- + extern BYTE *blanks;
- + extern int wait_status; /* kew */
- static int entry = 0;
- ! extern fd_set sel_bits; /* kew */
- static char *flush_pty_buf();
- static void p_update();
- void p_clear_screen();
- ***************
- *** 198,203 ****
- --- 209,215 ----
- if (str_arg && (prog = regcomp(str_arg)) == NULL)
- goto end_of_function;
-
- + wait_status = 0; /* kew */
- while (clock_check()) {
- int n;
- LIST *lp1;
- ***************
- *** 215,229 ****
- /* portably. Hopefully the window is too
- /* small to cause a problem.
- /*----------------------------------------*/
- ! if (child_sig)
- ! i = -1;
- ! else {
- ! fcntl(fd, F_SETFL, flags & ~O_NDELAY);
- ! if (child_sig)
- ! i = -1;
- ! i = read(fd, buf, 1);
- ! fcntl(fd, F_SETFL, flags);
- ! }
- if (i != 1) {
- update();
- if (check_if_died(curbp)) {
- --- 227,239 ----
- /* portably. Hopefully the window is too
- /* small to cause a problem.
- /*----------------------------------------*/
- ! if (check_if_died(curbp)) { /* kew */
- ! break; /* kew */
- ! } else { /* kew */
- ! if (child_sig && check_if_died(curbp)) /* kew */
- ! break; /* kew */
- ! i = read(fd, buf, 1); /* kew */
- ! } /* kew */
- if (i != 1) {
- update();
- if (check_if_died(curbp)) {
- ***************
- *** 616,622 ****
- strcpy(tty_name, TTY_NAME);
- for (xx = 0; pty_name[xx] != 'X'; )
- xx++;
- ! for (c1 = 'q'; c1 != 'z'; c1++) {
- for (c2 = 0; c2 < 0x10; c2++) {
- tty_name[xx] = pty_name[xx] = c1;
- tty_name[xx+1] = pty_name[xx+1] =
- --- 626,632 ----
- strcpy(tty_name, TTY_NAME);
- for (xx = 0; pty_name[xx] != 'X'; )
- xx++;
- ! for (c1 = 'p'; c1 != 'z'; c1++) { /* kew */
- for (c2 = 0; c2 < 0x10; c2++) {
- tty_name[xx] = pty_name[xx] = c1;
- tty_name[xx+1] = pty_name[xx+1] =
- ***************
- *** 648,662 ****
- --- 658,685 ----
- dup2(*recv, 2);
- close(*recv);
- close(*send);
- + #ifdef SIGTTIN /* kew */
- signal(SIGTTIN, SIG_DFL);
- signal(SIGTTOU, SIG_DFL);
- setpgrp(0, mypid);
- ioctl(0, TIOCSPGRP, &mypid);
- + #else /* start kew */
- + {
- + struct termio ot, nt;
- + ioctl(0, TCGETA, &ot);
- + nt = ot;
- + nt.c_cc[VMIN] = 1; /* one character read is OK */
- + nt.c_cc[VTIME] = 0; /* Never time out. */
- + ioctl(0, TCSETAW, &nt);
- + }
- + #endif /* end kew */
- }
- else {
- *recv = *send;
- + #ifdef SIGTTIN
- signal(SIGTTIN, SIG_IGN);
- signal(SIGTTOU, SIG_IGN);
- + #endif
- }
- # endif
-
- ***************
- *** 730,736 ****
- curbp->b_display = dp;
- infof("Buffer connected.");
- num_pty++;
- ! sel_bits |= BIT(dp->d_pipe_in);
- p_poll();
- return 0;
- }
- --- 753,759 ----
- curbp->b_display = dp;
- infof("Buffer connected.");
- num_pty++;
- ! FD_SET(dp->d_pipe_in, &sel_bits); /* kew */
- p_poll();
- return 0;
- }
- ***************
- *** 741,747 ****
- DISPLAY *dp = bp->b_display;
- if (dp == NULL)
- return;
- ! sel_bits &= ~BIT(dp->d_pipe_in);
- close(dp->d_pipe_in);
- close(dp->d_pipe_out);
- if (dp->d_pid) {
- --- 764,770 ----
- DISPLAY *dp = bp->b_display;
- if (dp == NULL)
- return;
- ! FD_CLR(dp->d_pipe_in, &sel_bits); /* kew */
- close(dp->d_pipe_in);
- close(dp->d_pipe_out);
- if (dp->d_pid) {
- ***************
- *** 810,824 ****
- }
- check_if_died(bp)
- register BUFFER *bp;
- ! { extern int child_sig;
- !
- ! if (child_sig)
- proc_wait(-1);
- if (kill(bp->b_display->d_pid, 0) < 0) {
- p_cleanup(bp);
- return TRUE;
- ! }
- return FALSE;
- }
- p_write(buf, len)
- char *buf;
- --- 833,862 ----
- }
- check_if_died(bp)
- register BUFFER *bp;
- ! {
- ! /* start kew */
- ! extern int child_sig;
- ! int fd = bp->b_display->d_pipe_in;
- ! int i;
- ! char bigbuf[256];
- !
- ! if (child_sig) {
- ! do {
- ! i = read(fd, bigbuf, 255);
- ! if (i > 0) {
- ! bigbuf[i] = 0;
- ! p_update(bp, bigbuf);
- ! }
- ! } while (i > 0);
- proc_wait(-1);
- + }
- + bp->b_wstat = wait_status;
- if (kill(bp->b_display->d_pid, 0) < 0) {
- p_cleanup(bp);
- return TRUE;
- ! }
- return FALSE;
- + /* end kew */
- }
- p_write(buf, len)
- char *buf;
- diff -c -r +new-files ../cr.orig/s-xenix ./s-xenix
- *** ../cr.orig/s-xenix Wed Mar 27 23:10:58 1991
- --- ./s-xenix Thu Mar 28 08:11:20 1991
- ***************
- *** 8,11 ****
- # 286 CFLAGS).
- #
- SHLIB=
- ! export SHLIB
- --- 8,13 ----
- # 286 CFLAGS).
- #
- SHLIB=
- ! OTHERLIBS="-ldir"
- ! G="-O"
- ! export SHLIB OTHERLIBS G
- diff -c -r +new-files ../cr.orig/spawn.c ./spawn.c
- *** ../cr.orig/spawn.c Wed Mar 27 23:10:42 1991
- --- ./spawn.c Wed Mar 27 16:21:30 1991
- ***************
- *** 25,30 ****
- --- 25,31 ----
- } PROC;
- Head_p hd_procs;
- int child_sig = FALSE; /* Set to TRUE when SIGCLD goes off. */
- + int wait_status; /* kew */
-
- void
- proc_add(pid, macro)
- ***************
- *** 65,70 ****
- --- 66,72 ----
- while (1) {
- while (1) {
- dead_proc = wait(&status);
- + wait_status = (status >> 8); /* kew */
- # if defined(SIGCLD)
- signal(SIGCLD, child_handler);
- # endif
- ***************
- *** 110,116 ****
- if (shname == NULL)
- shname = ggetenv("shell");
- if (shname == NULL)
- ! shname = "/bin/csh";
- }
- return shname;
- }
- --- 112,118 ----
- if (shname == NULL)
- shname = ggetenv("shell");
- if (shname == NULL)
- ! shname = "/bin/sh"; /* kew */
- }
- return shname;
- }
- diff -c -r +new-files ../cr.orig/splay/sptree.h ./splay/sptree.h
- *** ../cr.orig/splay/sptree.h Wed Mar 27 23:08:44 1991
- --- ./splay/sptree.h Wed Mar 27 22:27:38 1991
- ***************
- *** 20,26 ****
-
- typedef struct _spblk SPBLK;
-
- ! typedef struct _spblk
- {
- SPBLK * leftlink;
- SPBLK * rightlink;
- --- 20,26 ----
-
- typedef struct _spblk SPBLK;
-
- ! /*typedef*/ struct _spblk
- {
- SPBLK * leftlink;
- SPBLK * rightlink;
- diff -c -r +new-files ../cr.orig/src/crisp/GNUmakefile ./src/crisp/GNUmakefile
- *** ../cr.orig/src/crisp/GNUmakefile
- --- ./src/crisp/GNUmakefile Wed Mar 27 21:02:06 1991
- ***************
- *** 0 ****
- --- 1,110 ----
- + #
- + # GNU-Makefile for macros
- + #
- +
- + MACDIR = /usr/local/crisp/macros
- + H = crisp.h tty/tty.h
- + VANILLA = Makefile
- +
- + vpath :tty:kbd
- +
- + CM = \
- + abbrev.cm \
- + ansi.cm \
- + ascii.cm \
- + autosave.cm \
- + box.cm \
- + brace.cm \
- + calc.cm \
- + cbox.cm \
- + column.cm \
- + compile.cm \
- + copyr.cm \
- + core.cm \
- + crisp.cm \
- + crisprc.cm \
- + dial.cm \
- + edt.cm \
- + features.cm \
- + g_macros.cm \
- + g_vi.cm \
- + hanoi.cm \
- + help.cm \
- + history.cm \
- + kbd/pc.cm \
- + kbd/sun3.cm \
- + kbd/xcrisp.cm \
- + kbd/xterm.cm \
- + kbd_help.cm \
- + mail.cm \
- + makeman.cm \
- + misc.cm \
- + modelines.cm \
- + options.cm \
- + ralign.cm \
- + rcs.cm \
- + region.cm \
- + regress.cm \
- + sccs.cm \
- + sdb.cm \
- + search.cm \
- + select.cm \
- + shell.cm \
- + startup.cm \
- + stest.cm \
- + tags.cm \
- + telnet.cm \
- + text.cm \
- + tty.cm \
- + tty/aixterm.cm \
- + tty/at386.cm \
- + tty/att.cm \
- + tty/dec.cm \
- + tty/ibm5081.cm \
- + tty/isc.cm \
- + tty/sco.cm \
- + tty/sun.cm \
- + tty/sun4.cm \
- + tty/telnet.cm \
- + tty/tty.cm \
- + tty/tvi965.cm \
- + tty/vt100.cm \
- + tty/vt220.cm \
- + tty/wyse50.cm \
- + tty/wyse60.cm \
- + tty/xcrisp.cm \
- + tty/xenix.cm \
- + tty/xterm.cm \
- + unix.cm \
- + welcome.cm \
- + window.cm \
- + wp.cm \
- + zoom.cm
- +
- + all: $(addprefix $(MACDIR)/, $(CM))
- +
- +
- + $(addprefix $(MACDIR)/, $(CM)): $(MACDIR)/%.cm : %.m $(H)
- + cm -o $@ $<
- +
- + $(VANILLA)::
- + @rm -f $(VANILLA)
- + @echo "#\n# Plain Vanilla $(VANILLA) for Crisp Macros\n#" >> $(VANILLA)
- + @echo "# This file generated by GNU Make with GNUmakefile" >> $(VANILLA)
- + @echo "# If you don't use GNU make, you should think about changing." >> $(VANILLA)
- + @echo "# Date produced: `date`" >> $(VANILLA)
- + @echo "#\n" >> $(VANILLA)
- + @echo "SHELL = /bin/sh" >> $(VANILLA)
- + @echo "MACDIR = $(MACDIR)" >> $(VANILLA)
- + @echo "H = $(H)" >> $(VANILLA)
- + @echo "CM = \c" >> $(VANILLA)
- + @echo "$(CM)" \
- + | awk '{for (i = 1; i < NF; i++) printf("\t$$(MACDIR)/%s\\\n", $$i);\
- + printf("\t$$(MACDIR)/%s\n", $$NF)}' >> $(VANILLA)
- + @echo "\n\nall: $$(CM)" >> $(VANILLA)
- + @echo "\n" >> $(VANILLA)
- + @echo "$(basename $(CM))" \
- + | awk '{for (i = 1; i <= NF; i++) { \
- + printf("$$(MACDIR)/%s.cm: $$(H) %s.m\n", $$i, $$i); \
- + printf("\tcm -o $$(MACDIR)/%s.cm %s.m\n", $$i, $$i);}}' >> $(VANILLA)
- + @echo "vanilla $(VANILLA) completed"
- diff -c -r +new-files ../cr.orig/src/crisp/Makefile ./src/crisp/Makefile
- *** ../cr.orig/src/crisp/Makefile Wed Mar 27 23:09:05 1991
- --- ./src/crisp/Makefile Wed Mar 27 21:02:14 1991
- ***************
- *** 1,65 ****
- ! MACDIR = /usr/local/crisp/macros
- ! H = crisp.h tty/tty.h
- ! SRC = Makefile *.h *.m kbd/* tty/*
- ! CM = $(MACDIR)/abbrev.cm \
- ! $(MACDIR)/ansi.cm \
- ! $(MACDIR)/ascii.cm \
- ! $(MACDIR)/autosave.cm \
- ! $(MACDIR)/box.cm \
- ! $(MACDIR)/brace.cm \
- ! $(MACDIR)/calc.cm \
- ! $(MACDIR)/compile.cm \
- ! $(MACDIR)/copyr.cm \
- ! $(MACDIR)/core.cm \
- ! $(MACDIR)/crisp.ó┐û∙Ç IQ@q└â└!SP⌠à ±Ç@â└Sâ└bâ└H`ò @ `ò @ 4 σ ░äæL ªφ%╩Θth┼9H@ïdΩmÉPTî$ß└╠±ö\à0
- mÉ ╫X≡h U8UM R-ÉKσ ≤àh àHÉeXM Ü A"@IöMQ5Æ 0PS┼8@<╘L⌡RT╬4ö├5!LAD ╨I0 ▒NRU8UUSÄCÇ